Kristian Rietveld [Tue, 12 Oct 2010 15:20:44 +0000 (17:20 +0200)]
Use GtkAdjustment accessors to properly compress changed signals
Matthias Clasen [Tue, 12 Oct 2010 15:28:21 +0000 (11:28 -0400)]
Rework GdkPangoRenderer example to use existing api
Matthias Clasen [Tue, 12 Oct 2010 15:01:10 +0000 (11:01 -0400)]
docs: add a longdesc for X-specifics
Matthias Clasen [Tue, 12 Oct 2010 14:53:44 +0000 (10:53 -0400)]
docs: Update cairo-related docs
Matthias Clasen [Tue, 12 Oct 2010 13:59:05 +0000 (09:59 -0400)]
docs: Remove mentions of GdkPixmap from cursor docs
Matthias Clasen [Tue, 12 Oct 2010 13:45:11 +0000 (09:45 -0400)]
Move GdkVisualType docs inline
Matthias Clasen [Tue, 12 Oct 2010 12:59:46 +0000 (08:59 -0400)]
docs: Correct some link targets
Jorge González [Tue, 12 Oct 2010 15:16:12 +0000 (17:16 +0200)]
Updated Spanish translation
Tor Lillqvist [Tue, 12 Oct 2010 11:39:30 +0000 (14:39 +0300)]
Add two new functions to gtk.symbols
Michael Natterer [Tue, 12 Oct 2010 09:32:42 +0000 (11:32 +0200)]
Bug 631599 - Allow to use arbitrary surfaces for offscreen windows
As a first step, create surfaces lazily and factor surface creation
out to a single function.
Tristan Van Berkom [Tue, 12 Oct 2010 08:16:32 +0000 (17:16 +0900)]
Added logic to GtkScrolledWindow when allocating height-for-width children.
This patch makes the scrolled window reconsider allocating the child
the full width or height (depending on the child's request mode) without
a scrollbar. For instance when the child is height-for-width; the child
will first be tested if the content's height for full allocated width
(without a vscrollbar) will allow the contents height for that width
to fit the allocated height.
Patch is a simplified version of code inspected in st-scroll-view.c.
Note that this patch assumes children will begin to scroll only after
reaching their minimum size; adding a property to the future
GtkScrollableIface to decide whether to scroll-to-minimum or scroll-to-natural
will effect this code (it should then reconsider whether the child
will scroll below the natural size instead of the minimum).
Patch addresses bug 629778.
Tristan Van Berkom [Tue, 12 Oct 2010 08:10:55 +0000 (17:10 +0900)]
Make GtkScrolledWindow offload border-width calculations to GtkContainerClass.
Matthias Clasen [Tue, 12 Oct 2010 05:10:32 +0000 (01:10 -0400)]
Don't link to old stuff
Matthias Clasen [Tue, 12 Oct 2010 05:05:39 +0000 (01:05 -0400)]
Add a missing close tag
Matthias Clasen [Tue, 12 Oct 2010 04:57:13 +0000 (00:57 -0400)]
Remove a note about GTK 1.2 api
Matthias Clasen [Tue, 12 Oct 2010 04:50:18 +0000 (00:50 -0400)]
Fix a trivial typo
Matthias Clasen [Tue, 12 Oct 2010 04:46:59 +0000 (00:46 -0400)]
Reorder some sections
Matthias Clasen [Tue, 12 Oct 2010 04:38:04 +0000 (00:38 -0400)]
Remove mentions of dialog separator from the docs
Matthias Clasen [Tue, 12 Oct 2010 04:19:35 +0000 (00:19 -0400)]
Some documentation updates
Matthias Clasen [Tue, 12 Oct 2010 03:26:58 +0000 (23:26 -0400)]
Inspect geometry when setting resize grip cursors
We want to use the same cursor as metacity when the window is only
resizable in one dimension.
Owen W. Taylor [Sun, 10 Oct 2010 02:38:54 +0000 (22:38 -0400)]
GtkWindow: Allow setting size from geometry
If you set a geometry widget via gtk_window_set_geometry_hints() it
becomes very hard to compute appropriate toplevel sizes in pixels
to make the window a particular size. Synthesizing strings and passing
them to gtk_window_parse_geometry() is possible, but to avoid
avoid such ugliness, add functions:
gtk_window_set_default_geometry()
gtk_window_resize_to_geometry()
That act like gtk_window_set_default_size() and
gtk_window_resize() but are in terms of the resize increments of the
geometry widget.
https://bugzilla.gnome.org/show_bug.cgi?id=631796
Owen W. Taylor [Sun, 10 Oct 2010 02:29:20 +0000 (22:29 -0400)]
Warn when calling gtk_window_parse_geometry() on an empty window
gtk_window_parse_geometry() gets the size of the window in order
to interpret the position of the window; calling it before, say,
calling gtk_widget_show_all() on a window is a subtle trap, so
add a warning in the case we can easily detect.
https://bugzilla.gnome.org/show_bug.cgi?id=631794
Owen W. Taylor [Sun, 10 Oct 2010 02:15:34 +0000 (22:15 -0400)]
Fix handling of the geometry widget
The geometry widget feature of gtk_window_set_geometry_hints() has
never really worked right because the calculation that GTK+ did to
compute the base size of the window only worked when the geometry
widget had a larger minimum size than anything else in the window.
Setup:
* Move the GtkSizeGroup private functions to a new private header
gtksizegroup-private.h
* Add the possibilty to pass flags to _gtk_size_group_queue_resize(),
with the flag GTK_QUEUE_RESIZE_INVALIDATE_ONLY to suppress adding
the widget's toplevel to the resize queue.
* _gtk_container_resize_invalidate() is added to implement that feature
* _gtk_widget_override_size_request()/_gtk_widget_restore_size_request()
allow temporarily forcing a large minimum size on the geometry
widget without creating resize loops.
GtkWindow:
* Compute the extra width/height around the geometry widget
correctly; print a warning if the computation fails.
* Always make the minimum size at least the natural minimum
size of the toplevel; GTK+ now fails badly with underallocation.
* Always set the base size hint; we were failing to set it
properly when the specified minimum size was overriden, but
it's harmless to always set it.
Tests:
* New test 'testgeometry' that replaces the 'gridded geometry' test
from testgtk. The new test is roughly similar but creates a bunch
of windows showing different possibilities.
* The testgtk test is removed. No need to have both.
https://bugzilla.gnome.org/show_bug.cgi?id=68668
Tristan Van Berkom [Mon, 11 Oct 2010 15:47:43 +0000 (00:47 +0900)]
Added documentation to GtkContainer about implementing containers using height-for-width apis.
Vincent Untz [Mon, 11 Oct 2010 11:59:06 +0000 (13:59 +0200)]
build: Distribute README.multipress
https://bugzilla.gnome.org/show_bug.cgi?id=631872
Fran Diéguez [Mon, 11 Oct 2010 08:22:04 +0000 (10:22 +0200)]
Updated Galician translations
Ivar Smolin [Mon, 11 Oct 2010 06:40:35 +0000 (09:40 +0300)]
[l10n] Updated Estonian translation
Javier Jardón [Mon, 11 Oct 2010 02:21:36 +0000 (04:21 +0200)]
docs: Move documentation do inline comments: GtkContainer
Javier Jardón [Mon, 11 Oct 2010 02:59:19 +0000 (04:59 +0200)]
docs: Improve reference crossing in GtkWidget docs
Xan Lopez [Sun, 10 Oct 2010 09:18:27 +0000 (18:18 +0900)]
Plug memory leak in GtkWindow
1,936 (112 direct, 1,824 indirect) bytes in 4 blocks are definitely lost in loss record 13,453 of 13,673
at 0x4005BDC: malloc (vg_replace_malloc.c:195)
by 0x69615A1: cairo_region_create (cairo-region.c:196)
by 0x683BFBF: gdk_cairo_region_create_from_surface (gdkcairo.c:455)
by 0x670C882: set_grip_shape (gtkwindow.c:5020)
by 0x670CFBF: resize_grip_create_window (gtkwindow.c:5271)
by 0x670C466: gtk_window_realize (gtkwindow.c:4902)
Signed-off-by: Benjamin Otte <otte@redhat.com>
Xan Lopez [Sun, 10 Oct 2010 15:16:52 +0000 (00:16 +0900)]
Plug leak in gdkcairo.c
1,968 (1,236 direct, 732 indirect) bytes in 1 blocks are definitely lost in loss record 11,816 of 11,947
at 0x4025BDC: malloc (vg_replace_malloc.c:195)
by 0x6950676: _context_get (cairo.c:250)
by 0x6950940: cairo_create (cairo.c:370)
by 0x685CD1E: _gdk_cairo_surface_extents (gdkcairo.c:381)
by 0x685CEDA: gdk_cairo_region_create_from_surface (gdkcairo.c:433)
Signed-off-by: Benjamin Otte <otte@redhat.com>
Javier Jardón [Mon, 11 Oct 2010 00:01:14 +0000 (02:01 +0200)]
docs: Move documentation to inline comments: GtkScrolledWindow
Javier Jardón [Mon, 11 Oct 2010 00:10:24 +0000 (02:10 +0200)]
docs: Region returned by gdk_cairo_region_create_from_surface() should be freed
Gil Forcada [Sun, 10 Oct 2010 21:22:40 +0000 (23:22 +0200)]
Updated Catalan translation
Simos Xenitellis [Sun, 10 Oct 2010 18:18:39 +0000 (21:18 +0300)]
l10n: Updated Greek translation for gtk+ properties
Jorge González [Sat, 9 Oct 2010 12:26:20 +0000 (14:26 +0200)]
Updated Spanish translation
A S Alam [Sat, 9 Oct 2010 02:57:32 +0000 (08:27 +0530)]
updating translation for Punjabi
Matthias Clasen [Sat, 9 Oct 2010 02:04:33 +0000 (22:04 -0400)]
Fix a problem with 'resize grip avoidance' in scrollbars
We need to be a little more careful when determining the overlap
between the new allocation and the grip area. This was causing
vertical scrollbars in evince to overlap with the grip.
Matthias Clasen [Sat, 9 Oct 2010 00:17:51 +0000 (20:17 -0400)]
Check for grip_window != NULL in gtk_window_draw
This is safer, since GtkWindow subclasses may override realize
and end up with has_resize_grip == TRUE, but grip_window still
being NULL - as is the case with GtkPlug.
William Jon McCann [Fri, 8 Oct 2010 23:57:06 +0000 (19:57 -0400)]
gail: GtkTreeViewColumn doesn't have a destroy signal anymore
Replace with g_object_set_qdata_full usage.
William Jon McCann [Fri, 8 Oct 2010 23:26:01 +0000 (19:26 -0400)]
Don't assume widgets are containers when walking the focus tree
This causes problems for links in labels.
Colin Walters [Fri, 8 Oct 2010 20:43:38 +0000 (16:43 -0400)]
autogen: Explicitly allow libtool > 2.2
Apparently 2.4 is out, I'm not aware of a reason we shouldn't
allow it.
Matthias Clasen [Fri, 8 Oct 2010 18:21:11 +0000 (14:21 -0400)]
Fix grip window positioning
We need to position the grip window in size_allocate after all,
otherwise the grip ends up in the wrong place when the window
is realized early.
Also, avoid shadowing a variable.
Matthias Clasen [Fri, 8 Oct 2010 18:01:46 +0000 (14:01 -0400)]
Don't show resize grips on override-redirect window
Matthias Clasen [Fri, 8 Oct 2010 15:11:33 +0000 (11:11 -0400)]
Make GtkPaned use gtk_container_class_handle_border_width
Matthias Clasen [Fri, 8 Oct 2010 14:45:24 +0000 (10:45 -0400)]
Make GtkPaned use gtk_container_class_handle_border_width
Matthias Clasen [Fri, 8 Oct 2010 14:25:27 +0000 (10:25 -0400)]
Make GtkPathBar use gtk_container_class_handle_border_width
Tristan Van Berkom [Fri, 8 Oct 2010 14:10:42 +0000 (23:10 +0900)]
Migrated old GtkSizeRequestIface documentation to GtkWidget and added notes to gtk_widget_get_preferred_size().
Christian Dywan [Fri, 8 Oct 2010 14:01:07 +0000 (16:01 +0200)]
Use and print note for key only if there are credentials
Otherwise key might be printed uninitialized.
Tristan Van Berkom [Fri, 8 Oct 2010 13:27:02 +0000 (22:27 +0900)]
Removed call to get_preferred_size (widget, NULL, NULL);
This was another case of making sure size-request was called
before other code was doing get_child_requisition(), now caching
is done via the same api so no need for that line.
Tristan Van Berkom [Fri, 8 Oct 2010 13:26:01 +0000 (22:26 +0900)]
Removed needless initial size request of children
Old code was probably doing size-request on all children initially,
and then calling get_child_requisition() in other passes, now these
are cached after the first request anyway.
Tristan Van Berkom [Fri, 8 Oct 2010 13:25:16 +0000 (22:25 +0900)]
Removed needless size-requesting of children (child sizes are ignored at request time).
Matthias Clasen [Fri, 8 Oct 2010 13:28:00 +0000 (09:28 -0400)]
Make GtkTable use gtk_container_handle_border_width
Matthias Clasen [Fri, 8 Oct 2010 06:18:15 +0000 (02:18 -0400)]
Add a migration guide section about resize grips
Matthias Clasen [Fri, 8 Oct 2010 05:37:33 +0000 (01:37 -0400)]
Get scrollbars out of the way of the window's resize grip
If there are both horizontal and vertical scrollbars, there is
an unused 'corner' into which the resize grip fits. Individual
scrollbars need to be shortened and moved to make room for the
resize grip.
Matthias Clasen [Fri, 8 Oct 2010 05:43:24 +0000 (01:43 -0400)]
Remove resize grip handling from GtkStatusbar
We remove the resize grip from GtkStatusbar, but keep the code
that makes the content avoid the grip, and adapt it to GtkWindow
grips.
The gtk_status_bar_set/get_has_resize_grip() functions and related
properties are removed.
Cody Russell [Thu, 30 Sep 2010 18:15:23 +0000 (13:15 -0500)]
Remove uses of gtk_statusbar_set_has_resize_grip()
This function is going away.
Matthias Clasen [Fri, 8 Oct 2010 05:08:24 +0000 (01:08 -0400)]
Fix resize grip drawing in GtkAssistant
Chain up in the draw() implementation of GtkAssistant to let
GtkWindow draw the resize grip. This avoids black resize grips
in GtkAssistant windows.
Matthias Clasen [Fri, 8 Oct 2010 05:43:03 +0000 (01:43 -0400)]
Add resize grips to GtkWindow
Allow any window to display a resize grip, in the south-east or
south-west corner, depending on text direction. This is implemented
as a shaped window that gets overlayed on top of whatever content
is there. We add api that allows widgets to avoid the resize grip,
if desired.
The ::has-resize-grip property controls if a window may display
a resize grip. It will only be displayed if the window is resizable
and not maximized.
The size and visual appearance of the resize grip is under theme
control, using the resize-grip-width/height style properties and
the paint_resize_grip style function.
Matthias Clasen [Thu, 7 Oct 2010 11:47:58 +0000 (07:47 -0400)]
Fix export of a few (currently unused) configure variables
Turns out that autoconf eats all the m4_define magic before
AC_INIT.
William Jon McCann [Thu, 7 Oct 2010 06:48:20 +0000 (02:48 -0400)]
gail: don't try to get stock id from images that aren't stock
Fixes assertion caused by
41d2a4d059d881d8d05419013ae4946a81b308cb
Tor Lillqvist [Wed, 6 Oct 2010 22:27:06 +0000 (01:27 +0300)]
Gail needs _gtk_cell_renderer_calc_offset
Tor Lillqvist [Wed, 6 Oct 2010 22:15:56 +0000 (01:15 +0300)]
Bypass the ms-windows engine for now
It requires massive changes to build again. I started, but gave
up. More insight is needed.
Tor Lillqvist [Wed, 6 Oct 2010 22:14:46 +0000 (01:14 +0300)]
Make it compile again for Windows
Stef Walter [Wed, 6 Oct 2010 20:13:40 +0000 (20:13 +0000)]
Remove reference to hooks in gtk_about_dialog_set_website() docs.
Signed-off-by: Javier Jardón <jjardon@gnome.org>
Federico Mena Quintero [Wed, 6 Oct 2010 17:59:44 +0000 (12:59 -0500)]
Filechooser - In OPEN or SAVE mode, typing a plain folder name should switch to it
If you type 'subfolder/' and hit Enter, the file chooser will switch you to
it. But if you type just 'subfolder' without the trailing slash, apps would
receive *that* filename (e.g. file:///foo/bar/subfolder) as the response, and
they would likely print an error that they can't open that file (as it is
a folder). So, we change the file chooser's current folder to that subfolder
in this case.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Benjamin Otte [Wed, 6 Oct 2010 10:52:39 +0000 (12:52 +0200)]
widget: Fix GtkWidget::draw docs
width and height have been gone for a while...
Tristan Van Berkom [Wed, 6 Oct 2010 08:00:43 +0000 (17:00 +0900)]
Enhanced documentation description for GtkWrapBox (text by Murray Cumming).
Baurzhan Muftakhidinov [Wed, 6 Oct 2010 04:36:18 +0000 (10:36 +0600)]
Updates for Kazakh translation
John Ralls [Tue, 5 Oct 2010 23:18:25 +0000 (01:18 +0200)]
Replace GDK_Tab and GDK_ISO_Left_Tab with GDK_KEY equivalents
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=631475
Signed-off-by: Javier Jardón <jjardon@gnome.org>
Javier Jardón [Tue, 5 Oct 2010 23:09:23 +0000 (01:09 +0200)]
docs: visuals: Do not mention deprecated GdkRGB API's
Reported by Milan Bouchet-Valat in bug
https://bugzilla.gnome.org/show_bug.cgi?id=631473
Benjamin Otte [Tue, 5 Oct 2010 21:25:53 +0000 (23:25 +0200)]
docs: Dn't mark all signals in GtkWidgetClass as private
They are meant to be overwritten by subclasses after all.
Benjamin Otte [Tue, 5 Oct 2010 21:22:25 +0000 (23:22 +0200)]
viewport: Clip contents properly when called via gtk_widget_draw()
Benjamin Otte [Tue, 5 Oct 2010 20:36:35 +0000 (22:36 +0200)]
Revert "testgtk: Remove snapshot test"
This reverts commit
99c82af20a5204940ce2cb0f841be0d6f70a2778 and fixes
up things to compile again. Of course, the snapshotting now uses
gtk_widget_draw() instead.
Javier Jardón [Tue, 5 Oct 2010 20:52:31 +0000 (22:52 +0200)]
docs: reword GtkAdjustment short description
Federico Mena Quintero [Tue, 5 Oct 2010 19:41:51 +0000 (14:41 -0500)]
Handle the case where you type /blah/nonexistent in SELECT_FOLDER mode
Previously name_entry_get_parent_info_cb() would fail as it doesn't handle SELECT_FOLDER.
Now we just make that function act the same as for CREATE_FOLDER mode. In either
case, if you type "/blah/nonexistent" and hit Enter, you want a folder
with that name to be created (under the already-existing /blah).
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Stephen Shaw [Tue, 5 Oct 2010 17:59:45 +0000 (12:59 -0500)]
Clarify the name of a callback
The old save_entry_get_info_cb() was misnamed; it is actually used
to see if a file's presumed parent *is* a folder. So we rename
it to name_entry_get_parent_info_cb().
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Stephen Shaw [Tue, 5 Oct 2010 17:55:03 +0000 (12:55 -0500)]
bgo#629722 - file chooser should cope with typing a directory name and then Enter
file_exists_get_info_cb() used to let some actions fall through to
the code that checks for the file type of the selected file's parent
(e.g. to see if /foo/bar *is* indeed a folder if you type /foo/bar/baz).
However, we need to be more explicit for each file chooser action, as
in SELECT_FOLDER mode typing /foo/foldername and hitting Enter would not
give you an immediate selection, but rather the file chooser would
complain that it couldn't create that directory as it already exists.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Kibavuidi Nsiangani [Tue, 5 Oct 2010 19:52:42 +0000 (21:52 +0200)]
Added Kikongo translation
Kristian Rietveld [Tue, 5 Oct 2010 13:21:40 +0000 (15:21 +0200)]
Make set_cairo_surface_size a vfunc on GdkWindowImpl
Note the special implementation of this method on GdkOffscreenWindow
that makes sure its current surface is not destroyed.
Michael Natterer [Tue, 5 Oct 2010 11:05:56 +0000 (13:05 +0200)]
tests: don't call gtk_widget_get_allocation() on NULL children
Javier Jardón [Mon, 4 Oct 2010 16:48:47 +0000 (18:48 +0200)]
gtkmenu: Really fix menu code
Previous patch
f0039aa2a4367df95bda1b6cf3d4a735cafb4eb2
is not correct as it try to fix a bug introduced in commit
3a10216dd01c8d10df235b88c8942b2fda15689b
Christian Persch [Mon, 4 Oct 2010 14:36:43 +0000 (10:36 -0400)]
Fix a crash in menu code
https://bugzilla.gnome.org/show_bug.cgi?id=631311
Matthias Clasen [Mon, 4 Oct 2010 14:22:09 +0000 (10:22 -0400)]
Make GdkRectangle arguments in GtkCellRenderer use const consistently
https://bugzilla.gnome.org/show_bug.cgi?id=630900
Kristian Rietveld [Mon, 4 Oct 2010 09:43:16 +0000 (11:43 +0200)]
quartz: Emulate root window as 1x1 bitmap
We subclass GdkWindowImplQuartz into a new GdkRootWindowImplQuartz,
and override the get_context method in order to do this cleanly.
Also made release_context a virtual method, since the root window has
to release its CGContextRef differently compared to normal windows.
Javier Jardón [Mon, 4 Oct 2010 01:47:40 +0000 (03:47 +0200)]
docs: Move documentation to inline comments: colors
Javier Jardón [Mon, 4 Oct 2010 01:35:42 +0000 (03:35 +0200)]
docs: Move documentation to inline comments: pixbufs
Javier Jardón [Mon, 4 Oct 2010 01:19:43 +0000 (03:19 +0200)]
docs: Move documentation to inline comments: regions
Javier Jardón [Mon, 4 Oct 2010 01:04:09 +0000 (03:04 +0200)]
docs: Move documentation to inline comments: cairo_interaction
Javier Jardón [Mon, 4 Oct 2010 00:05:45 +0000 (02:05 +0200)]
docs: Move documentation to inline comments: GtkComboBox
Ignacio Casal Quinteiro [Sun, 3 Oct 2010 16:17:17 +0000 (18:17 +0200)]
Add missing vfuncs to gtknotebook.
Javier Jardón [Sun, 3 Oct 2010 17:50:11 +0000 (19:50 +0200)]
docs: Move documentation to inline comments: GtkNotebook
Žygimantas Beručka [Sun, 3 Oct 2010 13:21:32 +0000 (15:21 +0200)]
Updated Lithuanian translation by Aurimas Černius <aurisc4@gmail.com> and Rimas Kudelis <rq@akl.lt>
Žygimantas Beručka [Sun, 3 Oct 2010 13:15:53 +0000 (15:15 +0200)]
Updated Lithuanian translation by Aurimas Černius <aurisc4@gmail.com>
José Aliste [Sun, 3 Oct 2010 10:14:48 +0000 (12:14 +0200)]
textview: Fix clip usage
The previous code used cairo_clip_extents() and interpreted its
parameters wrong.
https://bugzilla.gnome.org/show_bug.cgi?id=631203
Javier Jardón [Sun, 3 Oct 2010 02:59:23 +0000 (04:59 +0200)]
docs: Latest 2.x release will be 2.24, not 2.22
Javier Jardón [Sun, 3 Oct 2010 01:41:44 +0000 (03:41 +0200)]
docs: Use gtk_widget_get_preferred_size() instead gtk_size_request_get_preferred_size()
GtkSizeRequest interface is now merged in GtkWidget
Garrett Regier [Sat, 2 Oct 2010 23:19:55 +0000 (01:19 +0200)]
docs: Move documentation to inline comments: GtkEntryBuffer
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=617320
Signed-off-by: Javier Jardón <jjardon@gnome.org>
Javier Jardón [Sat, 2 Oct 2010 22:58:38 +0000 (00:58 +0200)]
docs: Move documentation to inline comments: GtkTooltip
Javier Jardón [Sat, 2 Oct 2010 22:28:54 +0000 (00:28 +0200)]
docs: Move documentation to inline comments: GtkToolbar